#ifndef QUICKSORT_H
#define QUICKSORT_H

#include <omp.h>
#include <stdio.h>

#define FALSE		0
#define TRUE		1

extern char check_sort(int list[], int size);
// Recursive quicksort functions
extern void norm_rec_quicksort (int [], int, int);
extern void task_rec_quicksort (int [], int, int);
extern void data_rec_quicksort (int [], int, int, int);
extern void comb_rec_quicksort (int [], int, int, int);
////////////////////////////////

// Iterative quicksort functions
extern void norm_iter_quicksort(int [],int,int);
extern void task_iter_quicksort(int [],int,int);
extern void data_iter_quicksort (int [], int, int, int);
extern void comb_iter_quicksort (int [], int, int, int);



// Extra Functions
extern void merge_sort(int *a, int *b,int *output,int **input, int size_a, int size_b,int n);
extern int partition(int arr[], int p, int start, int end);
extern void swap1(int arr[], int i, int j);
extern void swap (int *, int *);
extern int choose_pivot(int, int);


#endif
